home *** CD-ROM | disk | FTP | other *** search
/ Collection of Internet / Collection of Internet.iso / infosrvr / dev / www_talk.930 / 000146_connolly@pixel.convex.com _Wed Jun 24 19:16:14 1992.msg < prev    next >
Internet Message Format  |  1994-01-24  |  11KB

  1. Return-Path: <connolly@pixel.convex.com>
  2. Received: from dxmint.cern.ch by  nxoc01.cern.ch  (NeXT-1.0 (From Sendmail 5.52)/NeXT-2.0)
  3.     id AA28939; Wed, 24 Jun 92 19:16:14 MET DST
  4. Received: by dxmint.cern.ch (dxcern) (5.57/3.14)
  5.     id AA09163; Wed, 24 Jun 92 19:16:36 +0200
  6. Received: from pixel.convex.com by convex.convex.com (5.64/1.35)
  7.     id AA29352; Wed, 24 Jun 92 12:15:55 -0500
  8. Received: from localhost by pixel.convex.com (5.64/1.28)
  9.     id AA10088; Wed, 24 Jun 92 12:15:53 -0500
  10. Message-Id: <9206241715.AA10088@pixel.convex.com>
  11. To: davis@willow.tc.cornell.edu (Jim Davis)
  12. Cc: www-talk@nxoc01.cern.ch
  13. Subject: Re: Links that refer to a range of text, not just a point. 
  14. In-Reply-To: Your message of "Wed, 24 Jun 92 12:00:50 EDT."
  15.              <9206241600.AA13167@willow.tc.cornell.edu> 
  16. Content-Type: multipart/mixed; boundary="8<--"
  17. Mime-Version: 1.0
  18. Date: Wed, 24 Jun 92 12:15:52 CDT
  19. From: Dan Connolly <connolly@pixel.convex.com>
  20.  
  21. --8<--
  22.  
  23. >But then this raises another issue: does WWW allow anchors within
  24. >anchors?  I think not - in which case I could not use WWW anchors to
  25. >both label a paragraph (e.g. for attaching an annotation) and a word
  26. >within it (e.g. for definition).  This worries me quite a bit.  Nor
  27. >can I attach multiple links to the same point (e.g. definitions of a
  28. >word in multiple languages).
  29. >
  30. This and other related questions (can I have lists within lists?)
  31. are precisely the reason for using a well-defined structural markup
  32. language governed by SGML processing rules.
  33.  
  34. Right now we have no DTD for HTML, and the only answers lie in
  35. the browser source code. The documentation "in the web" is too
  36. vague. But I hardly think we want the browser source code to
  37. be the definition of HTML.
  38.  
  39. On the other hand, I tried and failed to come up with a DTD which
  40. described HTML in such a way that the existing documents are legal.
  41.  
  42. Before this situation gets out of hand, we need to establish a
  43. (possibly evolving, but at least exsting) SGML DTD for HTML.
  44. This will require incompatible changes to the definiton of HTML
  45. (for instance, the PLAINTEXT, XMP, and LISTING features of HTML
  46. don't quite fit into SGML).
  47.  
  48. Enclosed* is a proposed DTD, a perl hack to patch existing files,
  49. and a sample patched file. I invite:
  50.  
  51. = SGML experts to round out the DTD (should we include
  52.   stuff from the ISO General DTD? the AAP article DTD?
  53.   ISOnum, ISOpub etc. standard entities? How about
  54.   using the QWERTZ LaTeX-like DTD?)
  55.  
  56. = SGML non-experts to become conversant in SGML (it's
  57.   coming whether you like it or not)
  58.  
  59. = HyTime experts to add to the confusion. Seriously, I'd
  60.   like to know what HyTime has to offer.
  61.  
  62. = DSSSSSSSSSSL experts to do the same
  63.  
  64. = the WWW team to adapt existing code to match this DTD
  65.   (or some real DTD)
  66.  
  67. = HTTP server sites to then update their HTML files
  68.  
  69.  
  70.     *encosed in the MIME multipart/mixed enclosure sense
  71.  
  72. --8<--
  73.  
  74. <!-- This DTD was produced by DeveGram on Tue Jun  2 18:58:16 1992 -->
  75. <!-- and hand-edited by connolly@convex.com -->
  76.  
  77. <!-- typical usage:
  78.  
  79.   <!DOCTYPE web-node SYSTEM 
  80.     [
  81.     <!ENTITY UDI011 SDATA
  82.       "http://info.cern.ch/hypertext/DataSources/NewsFromVM/Overview.html">
  83.     ]>
  84.  -->
  85.  
  86. <!--     Parameter Entities       -->
  87.  
  88. <!--      Terminal symbols        -->
  89.  
  90. <!ENTITY % words "#PCDATA" >
  91.  
  92. <!--    Non-ELEMENT symbols       -->
  93.  
  94. <!ENTITY % inline       "%words | A" >
  95. <!ENTITY % text         "%inline | P | IMAGE" >
  96. <!ENTITY % heading "H1|H2|H3|H4|H5|H6" >
  97.  
  98. <!ENTITY lt "<">
  99. <!ENTITY gt ">">
  100. <!ENTITY amp "&">
  101.  
  102. <!ENTITY lt. "<">
  103. <!ENTITY gt. ">">
  104. <!ENTITY amp. "&">
  105.  
  106. <!--     Document structure       -->
  107.  
  108. <!ELEMENT WEB-NODE      O O  (TITLE, NEXTID?, ISINDEX?, section+, ADDRESS?)>
  109.  
  110. <!ELEMENT TITLE - -  (%inline)+>
  111. <!ELEMENT ADDRESS - - (%text)+>
  112.  
  113. <!ELEMENT NEXTID - O EMPTY >
  114. <!ATTLIST NEXTID N NUMBER #IMPLIED>
  115.  
  116. <!ELEMENT ISINDEX - O EMPTY >
  117.  
  118.  
  119. <!ELEMENT section O O ((%heading)?,
  120.                         (
  121.                         %text |
  122.                         section |
  123.                         MENU |
  124.                         UL |
  125.                         OL |
  126.                         DIR |
  127.                         DL)+)>
  128.  
  129. <!ELEMENT (H1|H2|H3|H4|H5|H6)   - -  (%inline) >
  130.  
  131. <!ELEMENT P     - O  EMPTY -- paragraph SEPARATOR -->
  132.  
  133. <!ELEMENT IMAGE - O EMPTY>
  134. <!ATTLIST IMAGE DATA ENTITY #REQUIRED>
  135.  
  136. <!ELEMENT A     - -  (%inline)+>
  137. <!ATTLIST A
  138.         NAME CDATA #IMPLIED
  139.         HREF ENTITY #IMPLIED
  140.         TYPE CDATA #IMPLIED --@@-- >
  141.  
  142. <!ELEMENT MENU  - -  (LI+)>
  143.  
  144. <!ELEMENT UL    - -  (LI+)>
  145.  
  146. <!ELEMENT OL    - -  (LI+)>
  147.  
  148. <!ELEMENT DIR   - -  (LI+)>
  149.  
  150. <!ELEMENT LI    - O  (%text)+>
  151.  
  152. <!ELEMENT DL    - -  ((DT, DD)+)>
  153.  
  154. <!ELEMENT DT    - O  (%inline)+>
  155.  
  156. <!ELEMENT DD    - O  (%text)+>
  157.  
  158. --8<--
  159.  
  160. And here's a perl script that attempts to patch up existing
  161. HTML files:
  162.  
  163. --8<--
  164.  
  165. #!/usr/local/bin/perl
  166. #
  167. # USE
  168. #   fix-html.pl <W3-file.html >W3-file.sgml
  169. #
  170. # SEE ALSO
  171. #   the web-node.dtd.
  172. #
  173.  
  174. print "<!DOCTYPE WEB-NODE SYSTEM \n[\n";
  175.  
  176. @html = <>;                     # read whole file
  177. $_ = join('', @html);
  178. $out = '';
  179.  
  180. $header = 0;
  181. $anchor = "UDI000";
  182. while(/</){
  183.     $out .= $`;
  184.     $_ = $';
  185.     if(s/^A\s+//i){
  186.         &fix_anchor;
  187.     }elsif(s/^NEXTID\s+(\d+)\s*>//){
  188.         $out .= "<NEXTID N=$1>";
  189.     }elsif(s/^H(\d)>//){
  190.         local($n) = $1;
  191.         while($n<=$header){ $out .= "</SECTION>"; $header--; }
  192.         while($n>$header){ $out .= "<SECTION>"; $header++; }
  193.         $out .= "<H$n>";
  194.     }else{
  195.         $out .= '<';
  196.     }
  197. }
  198.  
  199. $out .= $_;
  200.  
  201. foreach(keys %anchor){
  202.     local($ent) = $anchor{$_};
  203.  
  204.     print "<!ENTITY $ent SDATA \"$_\">\n";
  205. }
  206.  
  207. print "]>\n", $out;
  208.  
  209. sub fix_anchor{
  210.     local($name, $href, $type);
  211.  
  212.     # What exactly is the syntax of an SGML attribute value?
  213.     while(s/^(\w+)\s*=\s*((\"[^\"]*\")|([^\s>]+))\s*//){
  214.         local($v) = ($3 || $4);
  215.         local($a) = $1;
  216.         $href = $v if $a =~ /^href$/i;
  217.         $name = $v if $a =~ /^name$/i;
  218.         $type = $v if $a =~ /^type$/i;
  219.     }
  220.     s/[^>]*>//;
  221.  
  222.     $out .= "<A";
  223.     $out .= " NAME=\"$name\"" if $name ne '';
  224.     $out .= " TYPE=\"$type\"" if $type ne '';
  225.     if($href ne ''){
  226.         if(!defined($anchor{$href})){
  227.             $anchor{$href} = ++$anchor;
  228.         }
  229.         $out .= " HREF=" . $anchor{$href};
  230.     }
  231.     $out .= ">";
  232. }
  233.  
  234. --8<--
  235.  
  236. Here's my default.html run through the above script:
  237.  
  238. --8<--
  239.  
  240. <!DOCTYPE WEB-NODE SYSTEM 
  241. [
  242. <!ENTITY UDI011 SDATA
  243. "http://info.cern.ch/hypertext/DataSources/NewsFromVM/Overview.html">
  244. <!ENTITY UDI006 SDATA "http://crnvmc.cern.ch./FIND">
  245. <!ENTITY UDI020 SDATA "http://info.cern.ch/rpc/doc/User/UserGuide.html">
  246. <!ENTITY UDI013 SDATA
  247. "http://info.cern.ch/hypertext/DataSources/bySubject/Overview.html">
  248. <!ENTITY UDI021 SDATA "http://otax.tky.hut.fi/tky/default.html">
  249. <!ENTITY UDI017 SDATA
  250. "http://info.cern.ch:8001/archive.orst.edu:9000/archie-orst.edu">
  251. <!ENTITY UDI010 SDATA "http://crnvmc.cern.ch/NEWS/student">
  252. <!ENTITY UDI019 SDATA
  253. "http://info.cern.ch./hypertext/Products/WAIS/Sources/Overview.html">
  254. <!ENTITY UDI002 SDATA "http://info.cern.ch/hypertext/WWW/TheProject.html">
  255. <!ENTITY UDI007 SDATA "http://crnvmc.cern.ch/NEWS/?">
  256. <!ENTITY UDI001 SDATA "QuickGuide.html">
  257. <!ENTITY UDI012 SDATA
  258. "http://info.cern.ch/hypertext/DataSources/News/Overview.html">
  259. <!ENTITY UDI003 SDATA "http://crnvmc.cern.ch./WHO">
  260. <!ENTITY UDI022 SDATA
  261. "gopher://gopher.micro.umn.edu:70/11/Other%20Gopher%20and%20Information%20Servers">
  262. <!ENTITY UDI005 SDATA "http://crnvmc.cern.ch./FIND/jaune?">
  263. <!ENTITY UDI004 SDATA "http://crnvmc.cern.ch./FIND/yellow?">
  264. <!ENTITY UDI016 SDATA "http://crnvmc.cern.ch/FIND/DESY?">
  265. <!ENTITY UDI009 SDATA "http://crnvmc.cern.ch./NEWS/vmnews">
  266. <!ENTITY UDI008 SDATA "http://crnvmc.cern.ch./NEWS/cern">
  267. <!ENTITY UDI023 SDATA
  268. "http://info.cern.ch./hypertext/WWW/LineMode/Defaults/default.html">
  269. <!ENTITY UDI015 SDATA "http://slacvm.slac.stanford.edu./FIND/spires">
  270. <!ENTITY UDI018 SDATA "http://iicm.tu-graz.ac.at./jargon">
  271. <!ENTITY UDI014 SDATA "http://info.cern.ch./hypertext/DataSources/Overview.html">
  272. ]>
  273. <TITLE>CERN Information</TITLE>
  274. <NEXTID N=10>
  275. <SECTION><H1>CERN Information - Select by number</H1>
  276. <DL>
  277. <DT><A NAME="0" HREF=UDI001>Help</A>
  278. <DD>On this program, or the
  279. <A HREF=UDI002>World-Wide Web project</A>.
  280. <DT><A NAME="2" HREF=UDI003>Phone book</A>
  281. <DD>People, phone numbers, accounts and email addresses.
  282. See also the analytical
  283. <A NAME="yellow" HREF=UDI004>Yellow Pages</A>, or
  284. the same index in French :
  285. <A NAME="jaune" HREF=UDI005>Pages Jaunes</A>.
  286. <DT><A NAME="1" HREF=UDI006>"XFIND" index</A>
  287. <DD>Index of computer centre documentation, newsletters, news,
  288. help files, etc...
  289. <DT><A NAME="groups" HREF=UDI007>News</A>
  290. <DD>A complete list of all public CERN news groups, such as
  291. <A NAME="3" HREF=UDI008>news from the CERN User's
  292. Office</A>,<A NAME="4" HREF=UDI009>
  293. CERN computer center news</A>,<A HREF=UDI010>
  294. student news</A>. See also <A NAME="5" HREF=UDI011>private
  295. groups</A> and <A NAME="inews" HREF=UDI012>Internet
  296. news</A>.
  297. </dl>
  298. <SECTION><H2>From other sites</h2>
  299. See online data by
  300. <A NAME="subject" HREF=UDI013>subject</A>,
  301. pointers to
  302. <A HREF=UDI014>other forms of online data</a>, and the following specific databases:
  303. <DL>
  304. <DT><A NAME="spires" HREF=UDI015>SLAC SPIRES</A>
  305. <DD>The High Energy Physics preprint index at Stanford Linear
  306. Accelerator, California.
  307. (This is the same information avialable via the QSPIRES facility on BITNET.
  308. Include the word "FIND" as the first keyword, eg: K FIND AUTHOR FRED.).
  309. <DT><A NAME="desy" HREF=UDI016>DESY documents</a>
  310. <DD>Documents and help files from the DESY lab in Hamburg.
  311. <DT><A NAME="archie" HREF=UDI017>
  312. Archie</a>
  313. <DD>An index of almost everything available by "anonymous FTP".
  314. <DT><A NAME="7" HREF=UDI018>Hacker Jargon</a>
  315. <DD>An index to a cross-referenced set of hacker terms. A demonstration
  316. of the WWW gateway to the Graz Technical University Hyper-G database.
  317. <DT><A NAME="9" HREF=UDI019>W.A.I.S.</a>
  318. <DD>All kinds of information available from "Wide Area Information Servers".
  319. <DT><A NAME="6" HREF=UDI020>CERN RPC</A>
  320. <DD>The user guide for the RPC system developed in CERN CN division
  321. (not Sun/RPC). This is an example of documentation (partially) converted
  322. into hypertext.
  323. <DT><A NAME="hut" HREF=UDI021>Helsinki</a>
  324. <DD>Helsinki Technical University information service (Mostly Finnish).
  325. <DT><A NAME="gopher" HREF=UDI022>Gophers</a>
  326. <DD>Campus-wide information systems using "Gopher" software. (Requires
  327. www version 1.1 or higher)
  328. </DL>
  329. (This page may be an out of date copy. See the
  330. <A NAME="latest" HREF=UDI023>latest version</a>.)
  331.  
  332. --8<----
  333.  
  334.